<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::BoxClipper3D&lt; PointT &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1_box_clipper3_d.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="classpcl_1_1_box_clipper3_d-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::BoxClipper3D&lt; PointT &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>Implementation of a box clipper in 3D. Actually it allows affine transformations, thus any parallelepiped in general pose. The affine transformation is used to transform the point before clipping it using the unit cube centered at origin and with an extend of -1 to +1 in each dimension  
 <a href="classpcl_1_1_box_clipper3_d.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="box__clipper3_d_8h_source.html">box_clipper3D.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::BoxClipper3D&lt; PointT &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1_box_clipper3_d.png" usemap="#pcl::BoxClipper3D_3C_20PointT_20_3E_map" alt=""/>
  <map id="pcl::BoxClipper3D_3C_20PointT_20_3E_map" name="pcl::BoxClipper3D_3C_20PointT_20_3E_map">
<area href="classpcl_1_1_clipper3_d.html" title="Base class for 3D clipper objects" alt="pcl::Clipper3D&lt; PointT &gt;" shape="rect" coords="0,0,172,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:aaf5f8a379aafa69724492bade318ab96"><td class="memItemLeft" align="right" valign="top"><a id="aaf5f8a379aafa69724492bade318ab96"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1_box_clipper3_d.html">BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:aaf5f8a379aafa69724492bade318ab96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7d84db66b70e6c4657ec7c7c11f8ad5"><td class="memItemLeft" align="right" valign="top"><a id="ab7d84db66b70e6c4657ec7c7c11f8ad5"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_box_clipper3_d.html">BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:ab7d84db66b70e6c4657ec7c7c11f8ad5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1_clipper3_d"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1_clipper3_d')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1_clipper3_d.html">pcl::Clipper3D&lt; PointT &gt;</a></td></tr>
<tr class="memitem:a0e6e81447bc47f39c7b6fe0fb940307a inherit pub_types_classpcl_1_1_clipper3_d"><td class="memItemLeft" align="right" valign="top"><a id="a0e6e81447bc47f39c7b6fe0fb940307a"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1_clipper3_d.html">Clipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a0e6e81447bc47f39c7b6fe0fb940307a inherit pub_types_classpcl_1_1_clipper3_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3830d83b5548b4eb91c95d1936478bfb inherit pub_types_classpcl_1_1_clipper3_d"><td class="memItemLeft" align="right" valign="top"><a id="a3830d83b5548b4eb91c95d1936478bfb"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_clipper3_d.html">Clipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a3830d83b5548b4eb91c95d1936478bfb inherit pub_types_classpcl_1_1_clipper3_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a660793521d329da184d9b3bd8703db8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#a660793521d329da184d9b3bd8703db8f">BoxClipper3D</a> (const Eigen::Affine3f &amp;transformation)</td></tr>
<tr class="memdesc:a660793521d329da184d9b3bd8703db8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor taking an affine transformation matrix, which allows also shearing of the clipping area  <a href="classpcl_1_1_box_clipper3_d.html#a660793521d329da184d9b3bd8703db8f">更多...</a><br /></td></tr>
<tr class="separator:a660793521d329da184d9b3bd8703db8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a794ccb4a83e5543bb7674743fd454deb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#a794ccb4a83e5543bb7674743fd454deb">BoxClipper3D</a> (const Eigen::Vector3f &amp;rodrigues, const Eigen::Vector3f &amp;translation, const Eigen::Vector3f &amp;box_size)</td></tr>
<tr class="memdesc:a794ccb4a83e5543bb7674743fd454deb"><td class="mdescLeft">&#160;</td><td class="mdescRight">creates a BoxClipper object with a scaled box in general pose  <a href="classpcl_1_1_box_clipper3_d.html#a794ccb4a83e5543bb7674743fd454deb">更多...</a><br /></td></tr>
<tr class="separator:a794ccb4a83e5543bb7674743fd454deb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86e976f18ec28b4f795ca09a5d0651f3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#a86e976f18ec28b4f795ca09a5d0651f3">setTransformation</a> (const Eigen::Affine3f &amp;transformation)</td></tr>
<tr class="memdesc:a86e976f18ec28b4f795ca09a5d0651f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the affine transformation  <a href="classpcl_1_1_box_clipper3_d.html#a86e976f18ec28b4f795ca09a5d0651f3">更多...</a><br /></td></tr>
<tr class="separator:a86e976f18ec28b4f795ca09a5d0651f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ac1057cc5306b60c63d06d42b507957"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#a9ac1057cc5306b60c63d06d42b507957">setTransformation</a> (const Eigen::Vector3f &amp;rodrigues, const Eigen::Vector3f &amp;translation, const Eigen::Vector3f &amp;box_size)</td></tr>
<tr class="memdesc:a9ac1057cc5306b60c63d06d42b507957"><td class="mdescLeft">&#160;</td><td class="mdescRight">sets the box in general pose given by the orientation position and size  <a href="classpcl_1_1_box_clipper3_d.html#a9ac1057cc5306b60c63d06d42b507957">更多...</a><br /></td></tr>
<tr class="separator:a9ac1057cc5306b60c63d06d42b507957"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a647b5f26499e33448130492e67c885fb"><td class="memItemLeft" align="right" valign="top"><a id="a647b5f26499e33448130492e67c885fb"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#a647b5f26499e33448130492e67c885fb">~BoxClipper3D</a> ()  throw ()</td></tr>
<tr class="memdesc:a647b5f26499e33448130492e67c885fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual destructor <br /></td></tr>
<tr class="separator:a647b5f26499e33448130492e67c885fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a896d75857dabe5a22bece090c466498e"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#a896d75857dabe5a22bece090c466498e">clipPoint3D</a> (const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;point) const</td></tr>
<tr class="memdesc:a896d75857dabe5a22bece090c466498e"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface to clip a single point  <a href="classpcl_1_1_box_clipper3_d.html#a896d75857dabe5a22bece090c466498e">更多...</a><br /></td></tr>
<tr class="separator:a896d75857dabe5a22bece090c466498e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac78cc2483ab77c4e4425c8ac98c9af0d"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#ac78cc2483ab77c4e4425c8ac98c9af0d">clipLineSegment3D</a> (<a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;from, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;to) const</td></tr>
<tr class="separator:ac78cc2483ab77c4e4425c8ac98c9af0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d233f1cc0b5e96757aa6bde4febeec7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#a1d233f1cc0b5e96757aa6bde4febeec7">clipPlanarPolygon3D</a> (std::vector&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Eigen::aligned_allocator&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt; &amp;polygon) const</td></tr>
<tr class="separator:a1d233f1cc0b5e96757aa6bde4febeec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68de4d659f59f6e1270abf91d1bfa8c6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#a68de4d659f59f6e1270abf91d1bfa8c6">clipPlanarPolygon3D</a> (const std::vector&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Eigen::aligned_allocator&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt; &amp;polygon, std::vector&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Eigen::aligned_allocator&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt; &amp;clipped_polygon) const</td></tr>
<tr class="separator:a68de4d659f59f6e1270abf91d1bfa8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e33e10283ccc0b095abbbd60a8c2ad9"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#a5e33e10283ccc0b095abbbd60a8c2ad9">clipPointCloud3D</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;cloud_in, std::vector&lt; int &gt; &amp;clipped, const std::vector&lt; int &gt; &amp;indices=std::vector&lt; int &gt;()) const</td></tr>
<tr class="memdesc:a5e33e10283ccc0b095abbbd60a8c2ad9"><td class="mdescLeft">&#160;</td><td class="mdescRight">interface to clip a point cloud  <a href="classpcl_1_1_box_clipper3_d.html#a5e33e10283ccc0b095abbbd60a8c2ad9">更多...</a><br /></td></tr>
<tr class="separator:a5e33e10283ccc0b095abbbd60a8c2ad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a66f05a65b05fecb59b159b448ccd34"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classpcl_1_1_clipper3_d.html">Clipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#a0a66f05a65b05fecb59b159b448ccd34">clone</a> () const</td></tr>
<tr class="memdesc:a0a66f05a65b05fecb59b159b448ccd34"><td class="mdescLeft">&#160;</td><td class="mdescRight">polymorphic method to clone the underlying clipper with its parameters.  <a href="classpcl_1_1_box_clipper3_d.html#a0a66f05a65b05fecb59b159b448ccd34">更多...</a><br /></td></tr>
<tr class="separator:a0a66f05a65b05fecb59b159b448ccd34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_clipper3_d"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_clipper3_d')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_clipper3_d.html">pcl::Clipper3D&lt; PointT &gt;</a></td></tr>
<tr class="memitem:a8edfadcf508fbd3087975504a487a216 inherit pub_methods_classpcl_1_1_clipper3_d"><td class="memItemLeft" align="right" valign="top"><a id="a8edfadcf508fbd3087975504a487a216"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_clipper3_d.html#a8edfadcf508fbd3087975504a487a216">~Clipper3D</a> ()  throw ()</td></tr>
<tr class="memdesc:a8edfadcf508fbd3087975504a487a216 inherit pub_methods_classpcl_1_1_clipper3_d"><td class="mdescLeft">&#160;</td><td class="mdescRight">virtual destructor. Never throws an exception. <br /></td></tr>
<tr class="separator:a8edfadcf508fbd3087975504a487a216 inherit pub_methods_classpcl_1_1_clipper3_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:a2fea226becfec4be0a9c9a990fe7a9e1"><td class="memItemLeft" align="right" valign="top"><a id="a2fea226becfec4be0a9c9a990fe7a9e1"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>getDistance</b> (const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;point) const</td></tr>
<tr class="separator:a2fea226becfec4be0a9c9a990fe7a9e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0409c5176eff4f03b99540689c09a9e5"><td class="memItemLeft" align="right" valign="top"><a id="a0409c5176eff4f03b99540689c09a9e5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>transformPoint</b> (const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;pointIn, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;pointOut) const</td></tr>
<tr class="separator:a0409c5176eff4f03b99540689c09a9e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:a84590a9bcab602766f5d0a6f5204e7e3"><td class="memItemLeft" align="right" valign="top"><a id="a84590a9bcab602766f5d0a6f5204e7e3"></a>
Eigen::Affine3f&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a></td></tr>
<tr class="memdesc:a84590a9bcab602766f5d0a6f5204e7e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">the affine transformation that is applied before clipping is done on the unit cube. <br /></td></tr>
<tr class="separator:a84590a9bcab602766f5d0a6f5204e7e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename PointT&gt;<br />
class pcl::BoxClipper3D&lt; PointT &gt;</h3>

<p>Implementation of a box clipper in 3D. Actually it allows affine transformations, thus any parallelepiped in general pose. The affine transformation is used to transform the point before clipping it using the unit cube centered at origin and with an extend of -1 to +1 in each dimension </p>
<dl class="section author"><dt>作者</dt><dd>Suat Gedikli <a href="#" onclick="location.href='mai'+'lto:'+'ged'+'ik'+'li@'+'wi'+'llo'+'wg'+'ara'+'ge'+'.co'+'m'; return false;">gedik<span style="display: none;">.nosp@m.</span>li@w<span style="display: none;">.nosp@m.</span>illow<span style="display: none;">.nosp@m.</span>gara<span style="display: none;">.nosp@m.</span>ge.co<span style="display: none;">.nosp@m.</span>m</a> </dd></dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="a660793521d329da184d9b3bd8703db8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a660793521d329da184d9b3bd8703db8f">&#9670;&nbsp;</a></span>BoxClipper3D() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_box_clipper3_d.html">pcl::BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1_box_clipper3_d.html">BoxClipper3D</a> </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>transformation</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor taking an affine transformation matrix, which allows also shearing of the clipping area </p>
<dl class="section author"><dt>作者</dt><dd>Suat Gedikli <a href="#" onclick="location.href='mai'+'lto:'+'ged'+'ik'+'li@'+'wi'+'llo'+'wg'+'ara'+'ge'+'.co'+'m'; return false;">gedik<span style="display: none;">.nosp@m.</span>li@w<span style="display: none;">.nosp@m.</span>illow<span style="display: none;">.nosp@m.</span>gara<span style="display: none;">.nosp@m.</span>ge.co<span style="display: none;">.nosp@m.</span>m</a> </dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">transformation</td><td>the 3x3 affine transformation matrix that is used to describe the unit cube </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;: <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a> (transformation)</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;{</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  <span class="comment">//inverse_transformation_ = transformation_.inverse ();</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_box_clipper3_d_html_a84590a9bcab602766f5d0a6f5204e7e3"><div class="ttname"><a href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">pcl::BoxClipper3D::transformation_</a></div><div class="ttdeci">Eigen::Affine3f transformation_</div><div class="ttdoc">the affine transformation that is applied before clipping is done on the unit cube.</div><div class="ttdef"><b>Definition:</b> box_clipper3D.h:118</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a794ccb4a83e5543bb7674743fd454deb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a794ccb4a83e5543bb7674743fd454deb">&#9670;&nbsp;</a></span>BoxClipper3D() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_box_clipper3_d.html">pcl::BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1_box_clipper3_d.html">BoxClipper3D</a> </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>rodrigues</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>translation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>box_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>creates a BoxClipper object with a scaled box in general pose </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rodrigues</td><td>the rotation axis and angle given by the vector direction and length respectively </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">translation</td><td>the position of the box center </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">box_size</td><td>the size of the box for each dimension </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;{</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  <a class="code" href="classpcl_1_1_box_clipper3_d.html#a86e976f18ec28b4f795ca09a5d0651f3">setTransformation</a> (rodrigues, translation, box_size);</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_box_clipper3_d_html_a86e976f18ec28b4f795ca09a5d0651f3"><div class="ttname"><a href="classpcl_1_1_box_clipper3_d.html#a86e976f18ec28b4f795ca09a5d0651f3">pcl::BoxClipper3D::setTransformation</a></div><div class="ttdeci">void setTransformation(const Eigen::Affine3f &amp;transformation)</div><div class="ttdoc">Set the affine transformation</div><div class="ttdef"><b>Definition:</b> box_clipper3D.hpp:62</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="ac78cc2483ab77c4e4425c8ac98c9af0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac78cc2483ab77c4e4425c8ac98c9af0d">&#9670;&nbsp;</a></span>clipLineSegment3D()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_box_clipper3_d.html">pcl::BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::clipLineSegment3D </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>point1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>point2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section attention"><dt>注意</dt><dd>untested code </dd></dl>

<p>实现了 <a class="el" href="classpcl_1_1_clipper3_d.html#a1e5ad0839ade09009443f2302bd288dc">pcl::Clipper3D&lt; PointT &gt;</a>.</p>
<div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;{</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;  <span class="comment">/*</span></div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment">  PointT pt1, pt2;</span></div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="comment">  transformPoint (point1, pt1);</span></div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="comment">  transformPoint (point2, pt2);</span></div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="comment">  //</span></div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="comment">  bool pt1InBox = (fabs(pt1.x) &lt;= 1.0 &amp;&amp; fabs (pt1.y) &lt;= 1.0 &amp;&amp; fabs (pt1.z) &lt;= 1.0);</span></div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="comment">  bool pt2InBox = (fabs(pt2.x) &lt;= 1.0 &amp;&amp; fabs (pt2.y) &lt;= 1.0 &amp;&amp; fabs (pt2.z) &lt;= 1.0);</span></div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="comment">  // one is outside the other one inside the box</span></div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="comment">  //if (pt1InBox ^ pt2InBox)</span></div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="comment">  if (pt1InBox &amp;&amp; !pt2InBox)</span></div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="comment">  {</span></div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="comment">    PointT diff;</span></div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="comment">    PointT lambda;</span></div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="comment">    diff.getVector3fMap () = pt2.getVector3fMap () - pt1.getVector3fMap ();</span></div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="comment">    if (diff.x &gt; 0)</span></div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="comment">      lambda.x = (1.0 - pt1.x) / diff.x;</span></div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="comment">    else</span></div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="comment">      lambda.x = (-1.0 - pt1.x) / diff.x;</span></div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="comment">    if (diff.y &gt; 0)</span></div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="comment">      lambda.y = (1.0 - pt1.y) / diff.y;</span></div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="comment">    else</span></div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="comment">      lambda.y = (-1.0 - pt1.y) / diff.y;</span></div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="comment">    if (diff.z &gt; 0)</span></div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="comment">      lambda.z = (1.0 - pt1.z) / diff.z;</span></div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="comment">    else</span></div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="comment">      lambda.z = (-1.0 - pt1.z) / diff.z;</span></div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="comment">    pt2 = pt1 + std::min(std::min(lambda.x, lambda.y), lambda.z) * diff;</span></div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="comment">    // inverse transformation</span></div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="comment">    inverseTransformPoint (pt2, point2);</span></div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="comment">    return true;</span></div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="comment">  }</span></div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="comment">  else if (!pt1InBox &amp;&amp; pt2InBox)</span></div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">  {</span></div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="comment">    return true;</span></div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment">  }</span></div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">  */</span></div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a68de4d659f59f6e1270abf91d1bfa8c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68de4d659f59f6e1270abf91d1bfa8c6">&#9670;&nbsp;</a></span>clipPlanarPolygon3D() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_box_clipper3_d.html">pcl::BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::clipPlanarPolygon3D </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Eigen::aligned_allocator&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>polygon</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Eigen::aligned_allocator&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>clipped_polygon</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section attention"><dt>注意</dt><dd>untested code </dd></dl>

<p>实现了 <a class="el" href="classpcl_1_1_clipper3_d.html#ae1372c023005888d181e5f3c42bbcc35">pcl::Clipper3D&lt; PointT &gt;</a>.</p>
<div class="fragment"><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;{</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;  <span class="comment">// not implemented -&gt; clip everything</span></div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;  clipped_polygon.clear ();</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1d233f1cc0b5e96757aa6bde4febeec7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d233f1cc0b5e96757aa6bde4febeec7">&#9670;&nbsp;</a></span>clipPlanarPolygon3D() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_box_clipper3_d.html">pcl::BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::clipPlanarPolygon3D </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Eigen::aligned_allocator&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>polygon</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section attention"><dt>注意</dt><dd>untested code </dd></dl>

<p>实现了 <a class="el" href="classpcl_1_1_clipper3_d.html#a5b82162a5eac0dac20c8f4fc3da832c3">pcl::Clipper3D&lt; PointT &gt;</a>.</p>
<div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;{</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;  <span class="comment">// not implemented -&gt; clip everything</span></div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;  polygon.clear ();</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a896d75857dabe5a22bece090c466498e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a896d75857dabe5a22bece090c466498e">&#9670;&nbsp;</a></span>clipPoint3D()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_box_clipper3_d.html">pcl::BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::clipPoint3D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>interface to clip a single point </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">point</td><td>the point to check against </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true, it point still exists, false if its clipped </dd></dl>

<p>实现了 <a class="el" href="classpcl_1_1_clipper3_d.html#a7624bf0adc37acaaf5d5717a30069107">pcl::Clipper3D&lt; PointT &gt;</a>.</p>
<div class="fragment"><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;{</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;  <span class="keywordflow">return</span>  (fabs(<a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [ 0] * point.x +</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [ 3] * point.y +</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [ 6] * point.z +</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [ 9]) &lt;= 1 &amp;&amp;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;           fabs(<a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [ 1] * point.x +</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [ 4] * point.y +</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [ 7] * point.z +</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [10]) &lt;= 1 &amp;&amp;</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;           fabs(<a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [ 2] * point.x +</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [ 5] * point.y +</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [ 8] * point.z +</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>.data () [11]) &lt;= 1 );</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5e33e10283ccc0b095abbbd60a8c2ad9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e33e10283ccc0b095abbbd60a8c2ad9">&#9670;&nbsp;</a></span>clipPointCloud3D()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_box_clipper3_d.html">pcl::BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::clipPointCloud3D </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>cloud_in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>clipped</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>indices</em> = <code>std::vector&lt;&#160;int&#160;&gt;()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>interface to clip a point cloud </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud_in</td><td>input point cloud </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">clipped</td><td>indices of points that remain after clipping the input cloud </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">indices</td><td>the indices of points in the point cloud to be clipped. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>list of indices of remaining points after clipping. </dd></dl>

<p>实现了 <a class="el" href="classpcl_1_1_clipper3_d.html#ae0e4194e161e3212b5adc4322209ba3b">pcl::Clipper3D&lt; PointT &gt;</a>.</p>
<div class="fragment"><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;{</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;  <span class="keywordflow">if</span> (indices.empty ())</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;  {</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    clipped.reserve (cloud_in.size ());</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">register</span> <span class="keywordtype">unsigned</span> pIdx = 0; pIdx &lt; cloud_in.size (); ++pIdx)</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;      <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_box_clipper3_d.html#a896d75857dabe5a22bece090c466498e">clipPoint3D</a> (cloud_in[pIdx]))</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        clipped.push_back (pIdx);</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;  }</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;  {</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordflow">for</span> (std::vector&lt;int&gt;::const_iterator iIt = indices.begin (); iIt != indices.end (); ++iIt)</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;      <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_box_clipper3_d.html#a896d75857dabe5a22bece090c466498e">clipPoint3D</a> (cloud_in[*iIt]))</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        clipped.push_back (*iIt);</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;  }</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_box_clipper3_d_html_a896d75857dabe5a22bece090c466498e"><div class="ttname"><a href="classpcl_1_1_box_clipper3_d.html#a896d75857dabe5a22bece090c466498e">pcl::BoxClipper3D::clipPoint3D</a></div><div class="ttdeci">virtual bool clipPoint3D(const PointT &amp;point) const</div><div class="ttdoc">interface to clip a single point</div><div class="ttdef"><b>Definition:</b> box_clipper3D.hpp:112</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a0a66f05a65b05fecb59b159b448ccd34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a66f05a65b05fecb59b159b448ccd34">&#9670;&nbsp;</a></span>clone()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_clipper3_d.html">pcl::Clipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; * <a class="el" href="classpcl_1_1_box_clipper3_d.html">pcl::BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>polymorphic method to clone the underlying clipper with its parameters. </p>
<dl class="section return"><dt>返回</dt><dd>the new clipper object from the specific subclass with all its parameters. </dd></dl>

<p>实现了 <a class="el" href="classpcl_1_1_clipper3_d.html#a8326abaae42f64048b367bb8c54e2e07">pcl::Clipper3D&lt; PointT &gt;</a>.</p>
<div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;{</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;  <span class="keywordflow">return</span> <span class="keyword">new</span> BoxClipper3D&lt;PointT&gt; (<a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a>);</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a86e976f18ec28b4f795ca09a5d0651f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86e976f18ec28b4f795ca09a5d0651f3">&#9670;&nbsp;</a></span>setTransformation() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_box_clipper3_d.html">pcl::BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setTransformation </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Affine3f &amp;&#160;</td>
          <td class="paramname"><em>transformation</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the affine transformation </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">transformation</td><td></td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;{</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a> = transformation;</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;  <span class="comment">//inverse_transformation_ = transformation_.inverse ();</span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a id="a9ac1057cc5306b60c63d06d42b507957"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ac1057cc5306b60c63d06d42b507957">&#9670;&nbsp;</a></span>setTransformation() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_box_clipper3_d.html">pcl::BoxClipper3D</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setTransformation </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>rodrigues</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>translation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3f &amp;&#160;</td>
          <td class="paramname"><em>box_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>sets the box in general pose given by the orientation position and size </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rodrigues</td><td>the rotation axis and angle given by the vector direction and length respectively </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">translation</td><td>the position of the box center </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">box_size</td><td>the size of the box for each dimension </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;{</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  <a class="code" href="classpcl_1_1_box_clipper3_d.html#a84590a9bcab602766f5d0a6f5204e7e3">transformation_</a> = Eigen::Translation3f (translation) * Eigen::AngleAxisf(rodrigues.norm (), rodrigues.normalized ()) * Eigen::Scaling (box_size);</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="comment">//inverse_transformation_ = transformation_.inverse ();</span></div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>filters/include/pcl/filters/<a class="el" href="box__clipper3_d_8h_source.html">box_clipper3D.h</a></li>
<li>filters/include/pcl/filters/impl/<a class="el" href="box__clipper3_d_8hpp_source.html">box_clipper3D.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><a class="el" href="classpcl_1_1_box_clipper3_d.html">BoxClipper3D</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
